Skip to content

Earn-back: Gates F4 + F2 PASSED (retraction follow-up F-2026-05-18a)#50

Merged
hyperpolymath merged 8 commits into
mainfrom
earn-back/f4-f2-2026-05-18
May 18, 2026
Merged

Earn-back: Gates F4 + F2 PASSED (retraction follow-up F-2026-05-18a)#50
hyperpolymath merged 8 commits into
mainfrom
earn-back/f4-f2-2026-05-18

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Stacked on #49 (proof-debt ledger) → #47 (corrective reframe). Two Pillar F earn-back gates pass, each strictly to its mechanised strength.

Verified

  • F4proofs/agda/EchoPullbackUnivF4.agda: strict terminal-cone universal property m' ≡ m as a function of an explicit funext module parameter (FunExt₀, never a postulate — the Echo.agda cancel-iso idiom). Funext-free pointwise mediator kept as the corollary. Unconditional claim stays retracted.
  • F2proofs/agda/EchoStepNDModelF2.agda: a genuine second model of the bare Echo functor on EchoRelational.StepND, provably not the graph of any function under any state relabelling (nd-not-graph, checked true ≢ false). Same interface the deterministic model uses (EchoFunctorModel; functor laws via generic map-rel-id/map-rel-comp); agreement has content (StepND fibre = disjoint sum of deterministic branches by constructor case analysis — not refl, not Σ-η on × ⊤).

Both --safe --without-K, zero postulates, wired into All.agda, pinned in Smoke.agda. Full + smoke build green (agda All.agda / Smoke.agda exit 0).

Scope discipline (what is NOT earned back)

F2 is the Echo functor only. The graded-comonad claim (no nested D_r D_s), modality-level model-independence, and the conservativity metatheorem remain fully retracted. Gates F1 (coassoc open) and F3 (gated on F1) remain open. No claim moved beyond its hypothesis license.

Docs

  • docs/retractions.adoc — append-only follow-up F-2026-05-18a under R-2026-05-18 (entry not edited; policy-compliant).
  • paper.adoc — §3 NOTE (F4 conditional), §6 NOTE (F2 scoped), conclusion partial-earn-back paragraph.
  • conservativity.adoc — scope bullet + dated revision-history entry (statement unchanged: still evidence for).
  • types-abstract.adoc — contributions 2 & 5 scoped addenda (submission-ready status remains withdrawn).
  • earn-back-plan.adoc — ledger rows A2/A4 → PASSED, Status + recommended-order updated.

🤖 Generated with Claude Code

hyperpolymath and others added 6 commits May 18, 2026 01:13
Adversarial three-reviewer review + a codebase pressure-test found no
in-repo defense for five central claims; two were contradicted by the
repo's own Gate-2 audit. This commit corrects the PROSE downward to
what the Agda actually establishes. No proof is weakened — Agda is
unchanged except for line-comment retraction banners; full build
(All.agda then Smoke.agda) still exits 0 under --safe --without-K.

Retracted -> replaced:
- "graded comonad"            -> loss-graded reindexing modality
                                 (thin-poset action; no nested D_r D_s)
- "terminal-cone universal
   property"                  -> funext-relative pointwise mediator
- "two independent models /
   model-independence"        -> carrier-parametricity, fixed grade poset
- "conservativity metatheorem
   discharged by the build"   -> postulate-free build = evidence, not proof
- "funext quarantined"        -> no funext anywhere; pointwise mediator
                                 IS the real funext boundary

- docs/retractions.adoc: created (canonical log roadmap-gates.adoc
  referenced but never existed); entry R-2026-05-18.
- docs/echo-types/earn-back-plan.adoc: created; Pillar F gated program
  to convert retractions back into theorems (F1 make-or-break).
- paper/conservativity/types-abstract/establishment-plan: reframed;
  "submission-ready" status withdrawn from the abstract.
- Smoke.agda + 7 modules: top retraction banners (comments only).
- ECHO-CNO-BRIDGE.adoc: scope note (its distinct, valid "model
  independence" is NOT retracted; disambiguated, not over-applied).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The .envrc declared `use flake` but no flake.nix existed, so direnv
failed. Add a devShell pinned to nixpkgs nixos-24.11:

- rustc 1.82.0 + cabal-install 3.12.1.0 (exact .tool-versions match),
  agda 2.7.0.1, ghc 9.6.6, just 1.38.0
- Agda libraries: standard-library (nixpkgs, reproducible) +
  absolute-zero (local ~/dev/repos checkout; no usable upstream pkg),
  wired via a generated AGDA_DIR/libraries in the shellHook
- .gitignore: ignore the generated .agda/ dir

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…05-18)

Full-repo proof-debt audit. Confirmed zero postulates / zero escape
pragmas across all 88 modules — no hidden debt. Catalogues every
disclosed/structural debt as a single index (items A–E2): Pillar F
gates F1–F4; the Buchholz direct-order structural-fidelity gap; the
characteristic/ open obligations (EI-2 unaffected); the dangling
roadmap-gates.adoc canonical-pointer drift; Transport.agda's two
symbolic-ℚ open items + the corrected MEMORY.md index line.

Records a recommended order of attack. Moves no claim; reframed docs
stay as they are until their gate is green (per Guardrails).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… positive, coassoc open) (#48)

**Draft / checkpoint — do not merge.** Stacked on #47 (depends on the
earn-back plan it introduces).

## Finding

First execution of Gate F1 (`docs/echo-types/earn-back-plan.adoc`) — the
make-or-break gate for earning back the retracted "graded comonad"
claim.

`proofs/agda/EchoGradedComonadF1.agda` typechecks `--safe --without-K`,
**zero postulates** (verified).

**Decisive result: no foundational obstruction.** Agda demanded no K, no
funext, no postulate. The monoid-graded iterated-residue candidate
delivers, mechanised:

- non-collapsing graded functor `D r` (separating witness
`D2-nontrivial` — not ⊤)
- functor laws
- **nested** `δ : D (m+n) A → D m (D n A)` (the structure the retracted
dev never had)
- counit-right ✅ ; counit-left ✅ (only non-structural tool: ℕ-UIP,
K-free)

## Open (F1 NOT passed)

`gc-coassoc` — base + skeleton close; inductive step has an isolated
proof-engineering type-mismatch needing an explicit
δ-naturality-over-`R` lemma. Stated in-file as a precise OPEN
obligation: **not postulated, not softened, not wired into
`All.agda`/`Smoke.agda`**.

Per the plan guardrail (close-but-not-closed = failed-and-logged), **no
reframed claim moves** until F1 fully passes. This PR preserves the
feasibility finding only.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ngelog

Both sides are sequential 2026-05-18 == Status bullets; kept both in
chronological order (ledger added → F1 feasibility spike run). No claim
or gate moved; nothing retracted reinstated (verified per R-2026-05-18).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…/F4 independent

Resolves an internal contradiction: the Gate F1 header said "everything
else is gated on F1; other gates not attempted until F1 passes", but the
gate descriptions (F2 line 101, F4 lines 157-159) and "Recommended order
of attack" (F4+F2 in parallel, first) state F2/F4 are independent of F1.
Header now matches the rest of the doc. Doc-only; moves no claim; the
retraction posture (claims stay retracted until a gate passes) is
unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
F4 — EchoPullbackUnivF4.agda: strict terminal-cone universal property
m' ≡ m as a function of an EXPLICIT funext module parameter (FunExt₀,
never a postulate — the cancel-iso idiom). Pointwise mediator kept as
the funext-free corollary. Unconditional claim stays retracted.

F2 — EchoStepNDModelF2.agda: a genuine second model of the BARE Echo
functor on EchoRelational.StepND, a relation provably not the graph of
any function under any state relabelling (nd-not-graph: checked
true≢false). Same interface the deterministic model uses
(EchoFunctorModel; functor laws by generic map-rel-id/map-rel-comp);
agreement has content (StepND fibre = disjoint sum of deterministic
branches by constructor case analysis; not refl, not Σ-η on ×⊤).
Scope: the Echo functor only — graded-comonad / modality-level
model-independence / conservativity remain fully retracted.

Both --safe --without-K, ZERO postulates; wired into All.agda, pinned
in Smoke.agda; full + smoke build green. Scoped claims moved in
paper.adoc (§3 NOTE, §6 NOTE, conclusion), conservativity.adoc
(scope + revision history), types-abstract.adoc (contributions 2 & 5),
earn-back-plan.adoc (ledger A2/A4 + Status); logged append-only as
retraction follow-up F-2026-05-18a. F1 (coassoc) and F3 remain open.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hyperpolymath hyperpolymath force-pushed the earn-back/f4-f2-2026-05-18 branch from db2cb08 to fb3742d Compare May 18, 2026 08:07
Base automatically changed from roadmap/proof-debt-ledger-2026-05-18 to main May 18, 2026 08:28
# Conflicts:
#	docs/echo-types/conservativity.adoc
#	docs/echo-types/earn-back-plan.adoc
#	docs/echo-types/paper.adoc
#	docs/echo-types/types-abstract.adoc
#	docs/retractions.adoc
@hyperpolymath hyperpolymath merged commit 25986ae into main May 18, 2026
8 of 9 checks passed
@hyperpolymath hyperpolymath deleted the earn-back/f4-f2-2026-05-18 branch May 18, 2026 08:30
@hyperpolymath hyperpolymath restored the earn-back/f4-f2-2026-05-18 branch May 18, 2026 08:40
@hyperpolymath hyperpolymath deleted the earn-back/f4-f2-2026-05-18 branch May 18, 2026 08:40
@github-actions
Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 10 issues detected

Severity Count
🔴 Critical 0
🟠 High 5
🟡 Medium 5
View findings
[
  {
    "reason": "No test directory or test files found",
    "type": "no_tests",
    "file": "/home/runner/work/echo-types/echo-types",
    "action": "flag",
    "rule_module": "honest_completion",
    "severity": "high",
    "deduction": 20
  },
  {
    "reason": "Issue in quality.yml",
    "type": "missing_workflow",
    "file": "quality.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in security-policy.yml",
    "type": "missing_workflow",
    "file": "security-policy.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in secret-scanner.yml",
    "type": "missing_workflow",
    "file": "secret-scanner.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Action actions/cache@v4 needs attention",
    "type": "unpinned_action",
    "file": "agda.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "No dependabot.yml or renovate.json found in echo-types",
    "type": "DependencyUpdate",
    "file": "/home/runner/work/echo-types/echo-types",
    "action": "auto_fix",
    "rule_module": "scorecard",
    "severity": "high",
    "remediation": "Add .github/dependabot.yml or renovate.json configuration.",
    "scorecard_check": "Dependency-Update-Tool"
  },
  {
    "reason": "Nominal-only SAST in echo-types: codeql.yml language matrix contains no language present in the repo and lacks `actions`, so CodeQL records zero results on every commit. Remediation: set the CodeQL matrix to `language: actions`.",
    "type": "StaticAnalysis",
    "file": "/home/runner/work/echo-types/echo-types",
    "action": "auto_fix",
    "rule_module": "scorecard",
    "severity": "medium",
    "remediation": "Add CodeQL or equivalent SAST workflow.",
    "scorecard_check": "SAST"
  },
  {
    "reason": "1 workflow(s) with tag-pinned (not SHA-pinned) actions in echo-types",
    "type": "DependencyPinning",
    "file": "/home/runner/work/echo-types/echo-types",
    "action": "auto_fix",
    "rule_module": "scorecard",
    "severity": "medium",
    "remediation": "Pin GitHub Actions and Docker base images by SHA hash.",
    "scorecard_check": "Pinned-Dependencies"
  },
  {
    "reason": "Repository has 4 non-main remote branch(es). Policy: single main branch only.",
    "type": "GS007",
    "file": ".",
    "action": "delete_remote_branches",
    "rule_module": "git_state",
    "severity": "medium"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

hyperpolymath added a commit that referenced this pull request May 18, 2026
## Summary

Earns back the **K-attributed part of proof-debt ledger item B**
(Buchholz order). Item B held that the two same-binder sub-cases
(`bpsi ν α <ᵇ bpsi ν β` with `α <ᵇ β`; `bplus x y₂ <ᵇ bplus x z₂`
with `y₂ <ᵇ z₂`) were *"not constructible pending a K-free
reformulation"*.

- **Reconfirmed** the obstruction on **Agda 2.8** (the `Order.agda`
  comment cited 2.6.3): the *naive* `<ᵇ-irrefl` matching `x <ᵇ x`
  forces the shared-binder deletion `ν =?= ν`, rejected `--without-K`.
- **New module** `Ordinal.Buchholz.OrderExtendedDirect` (`_<ᵇᵈ_`)
  carries **both** same-binder constructors and proves, `--safe
  --without-K`, **zero postulates / zero escape pragmas**:
  - `<ᵇ-irrefl` via generalised `<ᵇ⇒≢` (distinct indices) discharged
    by `cong`-projection injectivity + the K-free **conflict** rule —
    `refl` is never matched, so the deletion rule is never invoked;
  - `<ᵇ-trans` (full extended transitivity);
  - `embed : Order._<ᵇ_ ⇒ _<ᵇᵈ_` — conservativity (faithful strict
    extension, not a redefinition).
- Wired into `All.agda`, pinned in `Smoke.agda`; **full + smoke build
  green** locally (Agda 2.8, stdlib v2.3).

## Scope (rigorous, not over-claimed)

- This is **not** `[CLOSED-NEG]`: the K-free reformulation **did not
  resist** — it succeeded.
- WF of the direct relation is **out of scope**: a termination-checker
  matter (Routes A/B of `buchholz-extended-wf.md`), orthogonal to K,
  still delivered via the `ExtendedOrder._<ᵇ⁺_` measure, which stays
  load-bearing. Trichotomy/totality out of scope.
- **No paper / conservativity / abstract claim moves** — item B is off
  the paper critical path. Logged as retraction follow-up
  **F-2026-05-18b**; ledger row B / recommended-order / Status updated.

## Notes

- **Base:** `earn-back/f4-f2-2026-05-18` (PR #50, unmerged) — the
  earn-back ledger + `F-2026-05-18a` live there; this work edits those
  files so it must stack on #50, not `main`.
- **MAP.adoc:** not on `main` (introduced by open PR #54). To avoid an
  add/add duplication, the item-B status line is **not copied**; the
  exact one-line replacement is recorded in `docs/retractions.adoc`
  (F-2026-05-18b) as a tracked follow-up to apply in/after #54.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant